home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / T-TPUG Old Monthly Disks / (c)tu.d64 / c-64 grapher.c (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  2KB  |  68 lines

  1. 0 REM C-64 HI-RES GRAPH DEMO, DAVID WILLIAMS,1982
  2. 5 GOTO500
  3. 10 Y=SQR(25-X*X)
  4. 11 RETURN
  5. 100 C%=PC:R%=PR
  6. 103 SYSXX
  7. 104 RETURN
  8. 500 IFPEEK(51712)<>162THENLOAD"64 H-R PLOT M/L",8,1
  9. 510 DIMA(3000):CLR
  10. 1000 PRINT"[147]DO YOU WANT INSTRUCTIONS? (Y OR N)"
  11. 1010 GETS1$:IFS1$<>"Y"ANDS1$<>"N"THEN1010
  12. 1020 IFS1$="Y"THEN1500
  13. 1030 PRINT"[147]PLEASE COMPLETE EQUATION OF FUNCTION"
  14. 1040 INPUT"Y=";Z$
  15. 1050 IFLEFT$(Z$,3)="Y=?"THENZ$=RIGHT$(Z$,LEN(Z$)-3)
  16. 1060 FORA1=1TO2:POKE630+A1,13:NEXT:POKE198,2
  17. 1070 PRINT"10Y=";Z$
  18. 1090 PRINT"RUN1100[145][145][145]";:END
  19. 1100 C%=0:R%=0:XX=51712
  20. 1101 INPUT"[147]WHAT IS THE GREATEST VALUE OF X";XB
  21. 1110 INPUT"WHAT IS THE LEAST VALUE OF X";XA
  22. 1120 INPUT"WHAT IS THE GREATEST VALUE OF Y";YB
  23. 1130 INPUT"WHAT IS THE LEAST VALUE OF Y";YA
  24. 1140 PRINT"DO YOU WANT AXES DRAWN? (Y OR N)"
  25. 1180 GETA$:IFA$<>"Y"ANDA$<>"N"THEN1180
  26. 1200 PRINT"[147]";
  27. 1202 PRINT"COLOUR NUMBERS (0-15)"
  28. 1204 INPUT "GRAPH";CO:CO=15ANDCO
  29. 1206 INPUT"BACKGROUND";CZ:CZ=15ANDCZ
  30. 1207 POKE52748,16*CO+CZ:POKE52749,1:REM COLOUR BYTE AND PLOT/UNPLOT FLAG
  31. 1208 PRINT"[147]";:POKE53265,PEEK(53265)OR32:POKE53272,PEEK(53272)AND240OR8
  32. 1210 J=17*CZ:FORI=1024TO2023:POKEI,J:NEXT
  33. 1215 HS=8192:CS=1024
  34. 1219 SX=(XB-XA)/319:SY=(YB-YA)/199
  35. 1220 IFA$="N"THEN1270
  36. 1230 PC=INT(.5-XA/SX)
  37. 1240 IFPC>=0ANDPC<=319THENFORPR=0TO199:GOSUB100:NEXT
  38. 1250 PR=INT(.5+YB/SY)
  39. 1260 IFPR>=0ANDPR<=199THENFORPC=0TO319:GOSUB100:NEXT
  40. 1270 X=XA:GOSUB10:Y1=Y:R1=INT((YB-Y1)/SY+.5)
  41. 1280 FORB1=0TO318
  42. 1290 X=XA+SX*(B1+1):GOSUB10:Y2=Y
  43. 1300 R2=INT((YB-Y2)/SY+.5)
  44. 1310 IFABS(R2-R1)>199THEN1380
  45. 1320 SR=SGN(R2-R1)
  46. 1330 R3=INT((YB-(Y1+Y2)/2)/SY-SR/2+.5)
  47. 1340 SS=SR:IFSS=0THENSS=1
  48. 1350 PC=B1:FORPR=R1TOR3STEPSS:GOSUB100:NEXT
  49. 1360 IFSR=0THEN1380
  50. 1370 PC=B1+1:FORPR=R3+SRTOR2STEPSS:GOSUB100:NEXT
  51. 1380 Y1=Y2:R1=R2
  52. 1390 NEXT
  53. 1400 GOTO1400
  54. 1500 PRINT"TOO BAD, I HAVEN'T WRITTEN DETAILED"
  55. 1510 PRINT"INSTRUCTIONS YET!  JUST TYPE IN ANY"
  56. 1520 PRINT"FUNCTION EQUATION IN X AND Y, AND"
  57. 1530 PRINT"IT SHOULD WORK.   IF YOU"
  58. 1540 PRINT"USE TRIG RATIOS, ENTER THE ARGUMENTS"
  59. 1550 PRINT"IN BRACKETS, E.G. 'SIN(X)'. THE [211]AME"
  60. 1560 PRINT"APPLIES TO LOGS, ETC."
  61. 1570 PRINT"BE CAREFUL[146] TO AVOID UNDEFINED"
  62. 1580 PRINT"EXPRESSIONS WITHIN YOUR RANGES OF"
  63. 1590 PRINT"X AND Y."
  64. 1600 PRINT"PRESS SPACE BAR TO START"
  65. 1610 GETS1$:IFS1$<>" "THEN1610
  66. 1620 GOTO1030
  67.